﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Gustozzi.DAL;
using Gustozzi.BL;
namespace WebGustozzi.ModuloVentas
{
    public partial class wfActualizarCampaña : System.Web.UI.Page
    {
        VentasDataEntities contexto = null;
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack) 
            {
                Inicializa();
            }
        }

        public void Inicializa() 
        {

        }

        protected void ImageButton3_Click(object sender, ImageClickEventArgs e)
        {
            Response.Redirect("../wfPrincipal.aspx");
        }

        protected void imbAceptar_Click(object sender, ImageClickEventArgs e)
        {
            try
            {
                GenerarCodigo();
            }
            catch (Exception)
            {
                
                throw;
            }
        }
        public void GenerarCodigo() 
        {
            if (contexto == null) 
            {
                contexto = new VentasDataEntities();
            }

            var lstCodigo = from p in contexto.Campañas
                            select p.codigoCampana ;

            int idCodigo = 1;
            if (lstCodigo.Count() > 0) 
            {
                idCodigo = lstCodigo.Max();
                idCodigo += 1;
            }
            txtCodigoCamp.Text = idCodigo.ToString();
        }

        protected void txtCodigoCamp_TextChanged(object sender, EventArgs e)
        {
            try
            {
                BuscarCamp();
            }
            catch (Exception)
            {
                
                throw;
            }
        }
        public void BuscarCamp() 
        {
            if (contexto == null) 
            {
                contexto = new VentasDataEntities();
            }

            if (txtCodigoCamp.Text.Trim().Equals(string.Empty)) 
            {
                throw new Exception("Genere codigo de campaña");
            }

            int idCamp = Convert.ToInt32(txtCodigoCamp.Text.Trim());
            var lstCamp = from c in contexto.Campañas
                        where c.codigoCampana==idCamp
                        select c;

            if (lstCamp.Count() > 0)
            {
                Campaña oCamp = lstCamp.First();
                txtNombreCamp.Text = oCamp.nombre;
                txtDescripcion.Text = oCamp.descripcion;
                txtFechaInicio.Text = oCamp.fechaInicioVigencia.Value.ToShortDateString();
                txtFechaFin.Text = oCamp.fechaFinalVigencia.Value.ToShortDateString();

            }
            else 
            {
                txtNombreCamp.Text = string.Empty;
                txtDescripcion.Text = string.Empty;
                txtFechaInicio.Text = string.Empty;
                txtFechaFin.Text = string.Empty;
            }

        }

        protected void imbGuardar_Click(object sender, ImageClickEventArgs e)
        {
            try
            {
                Guardar();
            }
            catch (Exception)
            {
                
                throw;
            }
        }
        public void Guardar() 
        {
            if (contexto == null) 
            {
                contexto = new VentasDataEntities();
            }

            if (txtCodigoCamp.Text.Trim().Equals(string.Empty))
            {
                throw new Exception("Genere codigo de campaña");
            }

            int idCamp = Convert.ToInt32(txtCodigoCamp.Text.Trim());
            var lstCamp = from c in contexto.Campañas
                          where c.codigoCampana == idCamp
                          select c;
            
            Campaña oCamp = null;

            if (lstCamp.Count() > 0)
            {
                oCamp = lstCamp.First();
            }
            else 
            {
                oCamp = new Campaña();
                contexto.AddToCampañas(oCamp);
                oCamp.codigoCampana = idCamp;
            }

            oCamp.nombre = txtNombreCamp.Text;
            oCamp.descripcion = txtDescripcion.Text;
            oCamp.fechaInicioVigencia = Convert.ToDateTime(txtFechaInicio.Text);
            oCamp.fechaFinalVigencia= Convert.ToDateTime(txtFechaFin.Text);

            MarketingBL oMarketingBL = new MarketingBL();
            int rpt=oMarketingBL.ActualizarCampaña(oCamp, contexto);
            if (rpt > 0)
            {
                //mostrar satisfactorio
            }
            else 
            {
                //mostrar error
            }
        }
    }
}